package com.zhl.recursion2;

import java.io.File;

public class RecursionTest3 {
    //"D:\Study\论文\大学生领域低碳生活综述_于潇睿.pdf"
    public static void main(String[] args) {
        Search(new File("D:/"),"大学生领域低碳生活综述");

    }

    /*
    去目录下搜索某个文件
    dir: 目录
    filename: 要搜索的文件名
     */
    public static void Search(File dir , String filename){
        //1，把非法的情况都给拦住
        if(dir == null || !dir.exists() || dir.isFile()){
            return;   //不是目录，直接返回
        }
        //2.dir不是Null，存在，并且是目录
        //获取所有的一级文件夹
        File[] files = dir.listFiles();

        //3.判断当前目录下是否存在一级文件对象,以及是否可以拿到一级文件对象
        if(files != null && files.length > 0){
            //4.如果是目录，递归调用Search
            for(File file : files){
                //判断是文件夹还是文件
                if(file.isFile()){
                    //判断文件名是否匹配
                    if(file.getName().contains(filename)){
                        System.out.println("找到了文件："+file.getAbsolutePath());

                    }
                }else{
                    //如果是文件，继续重复过程
                    Search(file,filename);
                }
            }

        }

    }
}
